<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Annuaire genealogique associatif: Référence de la classe tp3::ArbreGenealogique</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Généré par Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Annuaire genealogique associatif&#160;<span id="projectnumber">1.0</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Page&#160;principale</span></a></li>
      <li><a href="namespaces.html"><span>Espaces&#160;de&#160;nommage</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Fichiers</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Liste&#160;des&#160;classes</span></a></li>
      <li><a href="functions.html"><span>Membres&#160;de&#160;classe</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('classtp3_1_1_arbre_genealogique.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Fonctions membres publiques</a> &#124;
<a href="#pri-methods">Fonctions membres privées</a> &#124;
<a href="#pri-attribs">Attributs privés</a> &#124;
<a href="#friends">Amis</a>  </div>
  <div class="headertitle">
<div class="title">Référence de la classe tp3::ArbreGenealogique</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="tp3::ArbreGenealogique" -->
<p>classe générique représentant un Arbre Genealogique.  
 <a href="classtp3_1_1_arbre_genealogique.html#details">Plus de détails...</a></p>

<p><code>#include &lt;ArbreGenealogique.h&gt;</code></p>
<div class="dynheader">
Graphe de collaboration de tp3::ArbreGenealogique:</div>
<div class="dyncontent">
<div class="center"><img src="classtp3_1_1_arbre_genealogique__coll__graph.png" border="0" usemap="#tp3_1_1_arbre_genealogique_coll__map" alt="Collaboration graph"/></div>
<map name="tp3_1_1_arbre_genealogique_coll__map" id="tp3_1_1_arbre_genealogique_coll__map">
<area shape="rect" id="node2" href="classtp3_1_1_arbre_genealogique_1_1_noeud.html" title="tp3::ArbreGenealogique::Noeud" alt="" coords="5,97,211,124"/><area shape="rect" id="node5" href="classtp3_1_1_personne.html" title="Classe représentant une personne." alt="" coords="57,5,159,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">légende</a>]</span></center></div>

<p><a href="classtp3_1_1_arbre_genealogique-members.html">Liste de tous les membres</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_arbre_genealogique_1_1_noeud.html">Noeud</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Fonctions membres publiques</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_arbre_genealogique.html#a1161612293710631908b913eca258199">ArbreGenealogique</a> (const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;p_personne)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">constructeur  <a href="#a1161612293710631908b913eca258199"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_arbre_genealogique.html#a6feb7e42ea8ecabc86ded3adb7b463ae">~ArbreGenealogique</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructeur.  <a href="#a6feb7e42ea8ecabc86ded3adb7b463ae"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_arbre_genealogique.html#ac3832250b86335974648152afe01b407">ajouterEnfant</a> (const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;p_parent, const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;p_enfant)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Ajouter un individu dans un arbre genealogique si le *parent est NULL creer un parent avec l'*enfant sinon ajouter un enfant au parent.  <a href="#ac3832250b86335974648152afe01b407"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classtp3_1_1_personne.html">Personne</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_arbre_genealogique.html#a977ab776043d88829a30aa1891d8cd38">enfantsDe</a> (const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;p_parent) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">trouver tous les enfants du parent  <a href="#a977ab776043d88829a30aa1891d8cd38"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_arbre_genealogique.html#acae3637da6122217be26f21ee5c47b91">appartient</a> (const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;p_personne) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">permet de savoir si une personne appartient à l'arbre  <a href="#acae3637da6122217be26f21ee5c47b91"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Fonctions membres privées</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_arbre_genealogique.html#a1e2f55fafcdd4f3e4b033e45d1973c0d">trouvePersonne</a> (const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;p_personne, <a class="el" href="classtp3_1_1_arbre_genealogique_1_1_noeud.html">Noeud</a> *&amp;p_trouve) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">trouve l'adresse du noeud où se trouve la personne par parcours récursif pré-ordre de _trouvePersonne  <a href="#a1e2f55fafcdd4f3e4b033e45d1973c0d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_arbre_genealogique.html#ad70bbfa3ba188296396f0a8cbdd3f2db">_trouvePersonne</a> (<a class="el" href="classtp3_1_1_arbre_genealogique_1_1_noeud.html">Noeud</a> *racine, const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;p_personne, <a class="el" href="classtp3_1_1_arbre_genealogique_1_1_noeud.html">Noeud</a> *&amp;p_trouve) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_arbre_genealogique.html#a422ceec3e4e218735f192802d08847e1">_postOrdre</a> (<a class="el" href="classtp3_1_1_arbre_genealogique_1_1_noeud.html">Noeud</a> *p_Ncourant, std::vector&lt; <a class="el" href="classtp3_1_1_personne.html">Personne</a> * &gt; &amp;p_vPersonnes) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">parcourt l'arbre en post-ordre  <a href="#a422ceec3e4e218735f192802d08847e1"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Attributs privés</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtp3_1_1_arbre_genealogique_1_1_noeud.html">Noeud</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_arbre_genealogique.html#af763923e57d933b06e8fc4a8b2681678">m_racine</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">La m_racine de l'arbre.  <a href="#af763923e57d933b06e8fc4a8b2681678"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_arbre_genealogique.html#a938e0af5fe205a036c5f5079a6598f96">m_nom</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Le nom de l'ancètre, de la famille.  <a href="#a938e0af5fe205a036c5f5079a6598f96"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="friends"></a>
Amis</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtp3_1_1_arbre_genealogique.html#ade91b0051c161195547079ed8958a289">operator&lt;&lt;</a> (std::ostream &amp;p_out, const <a class="el" href="classtp3_1_1_arbre_genealogique.html">ArbreGenealogique</a> &amp;p_arbreG)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">opérateur surcharge de sortie  <a href="#ade91b0051c161195547079ed8958a289"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Description détaillée</h2>
<div class="textblock"><p>classe générique représentant un Arbre Genealogique. </p>
<p>La classe gère un arbre Genealogique. L'implémentation se fait par chaînage. </p>
</div><hr/><h2>Documentation des constructeurs et destructeur</h2>
<a class="anchor" id="a1161612293710631908b913eca258199"></a><!-- doxytag: member="tp3::ArbreGenealogique::ArbreGenealogique" ref="a1161612293710631908b913eca258199" args="(const Personne &amp;p_personne)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">tp3::ArbreGenealogique::ArbreGenealogique </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;&#160;</td>
          <td class="paramname"><em>p_personne</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>constructeur </p>

</div>
</div>
<a class="anchor" id="a6feb7e42ea8ecabc86ded3adb7b463ae"></a><!-- doxytag: member="tp3::ArbreGenealogique::~ArbreGenealogique" ref="a6feb7e42ea8ecabc86ded3adb7b463ae" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">tp3::ArbreGenealogique::~ArbreGenealogique </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructeur. </p>

</div>
</div>
<hr/><h2>Documentation des fonctions membres</h2>
<a class="anchor" id="a422ceec3e4e218735f192802d08847e1"></a><!-- doxytag: member="tp3::ArbreGenealogique::_postOrdre" ref="a422ceec3e4e218735f192802d08847e1" args="(Noeud *p_Ncourant, std::vector&lt; Personne * &gt; &amp;p_vPersonnes) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tp3::ArbreGenealogique::_postOrdre </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classtp3_1_1_arbre_genealogique_1_1_noeud.html">Noeud</a> *&#160;</td>
          <td class="paramname"><em>p_Ncourant</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classtp3_1_1_personne.html">Personne</a> * &gt; &amp;&#160;</td>
          <td class="paramname"><em>p_vPersonnes</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>parcourt l'arbre en post-ordre </p>
<dl><dt><b>Paramètres:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p_Ncourant</td><td>l'arbre parcouru. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">p_vPersonnes</td><td>un vector contenant le résultat du parcours.</td></tr>
  </table>
  </dd>
</dl>
<dl class="post"><dt><b>Postcondition:</b></dt><dd>l'arbre a été parcouru </dd></dl>

</div>
</div>
<a class="anchor" id="ad70bbfa3ba188296396f0a8cbdd3f2db"></a><!-- doxytag: member="tp3::ArbreGenealogique::_trouvePersonne" ref="ad70bbfa3ba188296396f0a8cbdd3f2db" args="(Noeud *racine, const Personne &amp;p_personne, Noeud *&amp;p_trouve) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tp3::ArbreGenealogique::_trouvePersonne </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classtp3_1_1_arbre_genealogique_1_1_noeud.html">Noeud</a> *&#160;</td>
          <td class="paramname"><em>racine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;&#160;</td>
          <td class="paramname"><em>p_personne</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classtp3_1_1_arbre_genealogique_1_1_noeud.html">Noeud</a> *&amp;&#160;</td>
          <td class="paramname"><em>p_trouve</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ac3832250b86335974648152afe01b407"></a><!-- doxytag: member="tp3::ArbreGenealogique::ajouterEnfant" ref="ac3832250b86335974648152afe01b407" args="(const Personne &amp;p_parent, const Personne &amp;p_enfant)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tp3::ArbreGenealogique::ajouterEnfant </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;&#160;</td>
          <td class="paramname"><em>p_parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;&#160;</td>
          <td class="paramname"><em>p_enfant</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Ajouter un individu dans un arbre genealogique si le *parent est NULL creer un parent avec l'*enfant sinon ajouter un enfant au parent. </p>
<dl><dt><b>Paramètres:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p_parent</td><td>la référence d'une personne </td></tr>
  </table>
  </dd>
</dl>
<dl class="pre"><dt><b>Précondition:</b></dt><dd>Precondition si l'arbre est vide parent==enfant </dd></dl>
<dl><dt><b>Paramètres:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p_enfant</td><td>la référence d'une personne </td></tr>
  </table>
  </dd>
</dl>

<p><div class="dynheader">
Voici le graphe d'appel pour cette fonction :</div>
<div class="dyncontent">
<div class="center"><img src="classtp3_1_1_arbre_genealogique_ac3832250b86335974648152afe01b407_cgraph.png" border="0" usemap="#classtp3_1_1_arbre_genealogique_ac3832250b86335974648152afe01b407_cgraph" alt=""/></div>
<map name="classtp3_1_1_arbre_genealogique_ac3832250b86335974648152afe01b407_cgraph" id="classtp3_1_1_arbre_genealogique_ac3832250b86335974648152afe01b407_cgraph">
<area shape="rect" id="node3" href="classtp3_1_1_arbre_genealogique.html#a1e2f55fafcdd4f3e4b033e45d1973c0d" title="trouve l&#39;adresse du noeud où se trouve la personne par parcours récursif pré&#45;ordre de _trouvePersonne..." alt="" coords="301,5,560,32"/><area shape="rect" id="node5" href="classtp3_1_1_arbre_genealogique.html#ad70bbfa3ba188296396f0a8cbdd3f2db" title="tp3::ArbreGenealogique::_trouvePersonne" alt="" coords="609,5,874,32"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="acae3637da6122217be26f21ee5c47b91"></a><!-- doxytag: member="tp3::ArbreGenealogique::appartient" ref="acae3637da6122217be26f21ee5c47b91" args="(const Personne &amp;p_personne) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool tp3::ArbreGenealogique::appartient </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;&#160;</td>
          <td class="paramname"><em>p_personne</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>permet de savoir si une personne appartient à l'arbre </p>
<dl><dt><b>Paramètres:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p_personne</td><td>la personne recherchée. </td></tr>
  </table>
  </dd>
</dl>
<dl class="pre"><dt><b>Précondition:</b></dt><dd>non nulle </dd></dl>
<dl class="return"><dt><b>Renvoie:</b></dt><dd>vrai si la personne est dans l'arbre, faux sinon. </dd></dl>

<p><div class="dynheader">
Voici le graphe d'appel pour cette fonction :</div>
<div class="dyncontent">
<div class="center"><img src="classtp3_1_1_arbre_genealogique_acae3637da6122217be26f21ee5c47b91_cgraph.png" border="0" usemap="#classtp3_1_1_arbre_genealogique_acae3637da6122217be26f21ee5c47b91_cgraph" alt=""/></div>
<map name="classtp3_1_1_arbre_genealogique_acae3637da6122217be26f21ee5c47b91_cgraph" id="classtp3_1_1_arbre_genealogique_acae3637da6122217be26f21ee5c47b91_cgraph">
<area shape="rect" id="node3" href="classtp3_1_1_arbre_genealogique.html#a1e2f55fafcdd4f3e4b033e45d1973c0d" title="trouve l&#39;adresse du noeud où se trouve la personne par parcours récursif pré&#45;ordre de _trouvePersonne..." alt="" coords="280,5,539,32"/><area shape="rect" id="node5" href="classtp3_1_1_arbre_genealogique.html#ad70bbfa3ba188296396f0a8cbdd3f2db" title="tp3::ArbreGenealogique::_trouvePersonne" alt="" coords="587,5,853,32"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a977ab776043d88829a30aa1891d8cd38"></a><!-- doxytag: member="tp3::ArbreGenealogique::enfantsDe" ref="a977ab776043d88829a30aa1891d8cd38" args="(const Personne &amp;p_parent) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt; <a class="el" href="classtp3_1_1_personne.html">Personne</a> * &gt; tp3::ArbreGenealogique::enfantsDe </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;&#160;</td>
          <td class="paramname"><em>p_parent</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>trouver tous les enfants du parent </p>
<dl><dt><b>Paramètres:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p_parent</td><td>le parent des enfants </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Renvoie:</b></dt><dd>un vecteur contenant tous les enfants </dd></dl>

<p><div class="dynheader">
Voici le graphe d'appel pour cette fonction :</div>
<div class="dyncontent">
<div class="center"><img src="classtp3_1_1_arbre_genealogique_a977ab776043d88829a30aa1891d8cd38_cgraph.png" border="0" usemap="#classtp3_1_1_arbre_genealogique_a977ab776043d88829a30aa1891d8cd38_cgraph" alt=""/></div>
<map name="classtp3_1_1_arbre_genealogique_a977ab776043d88829a30aa1891d8cd38_cgraph" id="classtp3_1_1_arbre_genealogique_a977ab776043d88829a30aa1891d8cd38_cgraph">
<area shape="rect" id="node3" href="classtp3_1_1_arbre_genealogique.html#a1e2f55fafcdd4f3e4b033e45d1973c0d" title="trouve l&#39;adresse du noeud où se trouve la personne par parcours récursif pré&#45;ordre de _trouvePersonne..." alt="" coords="280,5,539,32"/><area shape="rect" id="node5" href="classtp3_1_1_arbre_genealogique.html#ad70bbfa3ba188296396f0a8cbdd3f2db" title="tp3::ArbreGenealogique::_trouvePersonne" alt="" coords="587,5,853,32"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a1e2f55fafcdd4f3e4b033e45d1973c0d"></a><!-- doxytag: member="tp3::ArbreGenealogique::trouvePersonne" ref="a1e2f55fafcdd4f3e4b033e45d1973c0d" args="(const Personne &amp;p_personne, Noeud *&amp;p_trouve) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tp3::ArbreGenealogique::trouvePersonne </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classtp3_1_1_personne.html">Personne</a> &amp;&#160;</td>
          <td class="paramname"><em>p_personne</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classtp3_1_1_arbre_genealogique_1_1_noeud.html">Noeud</a> *&amp;&#160;</td>
          <td class="paramname"><em>p_trouve</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>trouve l'adresse du noeud où se trouve la personne par parcours récursif pré-ordre de _trouvePersonne </p>
<dl><dt><b>Paramètres:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p_personne</td><td>la personne recherchée </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">p_trouve</td><td>le noeud trouvé </td></tr>
  </table>
  </dd>
</dl>
<dl class="post"><dt><b>Postcondition:</b></dt><dd>Postcondition le noeud est trouvé, si non ==0 </dd></dl>

<p><div class="dynheader">
Voici le graphe d'appel pour cette fonction :</div>
<div class="dyncontent">
<div class="center"><img src="classtp3_1_1_arbre_genealogique_a1e2f55fafcdd4f3e4b033e45d1973c0d_cgraph.png" border="0" usemap="#classtp3_1_1_arbre_genealogique_a1e2f55fafcdd4f3e4b033e45d1973c0d_cgraph" alt=""/></div>
<map name="classtp3_1_1_arbre_genealogique_a1e2f55fafcdd4f3e4b033e45d1973c0d_cgraph" id="classtp3_1_1_arbre_genealogique_a1e2f55fafcdd4f3e4b033e45d1973c0d_cgraph">
<area shape="rect" id="node3" href="classtp3_1_1_arbre_genealogique.html#ad70bbfa3ba188296396f0a8cbdd3f2db" title="tp3::ArbreGenealogique::_trouvePersonne" alt="" coords="313,5,578,32"/></map>
</div>
</p>

</div>
</div>
<hr/><h2>Documentation des fonctions amies et associées</h2>
<a class="anchor" id="ade91b0051c161195547079ed8958a289"></a><!-- doxytag: member="tp3::ArbreGenealogique::operator&lt;&lt;" ref="ade91b0051c161195547079ed8958a289" args="(std::ostream &amp;p_out, const ArbreGenealogique &amp;p_arbreG)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream&amp; operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>p_out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classtp3_1_1_arbre_genealogique.html">ArbreGenealogique</a> &amp;&#160;</td>
          <td class="paramname"><em>p_arbreG</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>opérateur surcharge de sortie </p>

</div>
</div>
<hr/><h2>Documentation des données membres</h2>
<a class="anchor" id="a938e0af5fe205a036c5f5079a6598f96"></a><!-- doxytag: member="tp3::ArbreGenealogique::m_nom" ref="a938e0af5fe205a036c5f5079a6598f96" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string <a class="el" href="classtp3_1_1_arbre_genealogique.html#a938e0af5fe205a036c5f5079a6598f96">tp3::ArbreGenealogique::m_nom</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Le nom de l'ancètre, de la famille. </p>

</div>
</div>
<a class="anchor" id="af763923e57d933b06e8fc4a8b2681678"></a><!-- doxytag: member="tp3::ArbreGenealogique::m_racine" ref="af763923e57d933b06e8fc4a8b2681678" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classtp3_1_1_arbre_genealogique_1_1_noeud.html">Noeud</a>* <a class="el" href="classtp3_1_1_arbre_genealogique.html#af763923e57d933b06e8fc4a8b2681678">tp3::ArbreGenealogique::m_racine</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>La m_racine de l'arbre. </p>

</div>
</div>
<hr/>La documentation de cette classe a été générée à partir des fichiers suivants :<ul>
<li><a class="el" href="_arbre_genealogique_8h.html">ArbreGenealogique.h</a></li>
<li><a class="el" href="_arbre_genealogique_8cpp.html">ArbreGenealogique.cpp</a></li>
</ul>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacetp3.html">tp3</a>      </li>
      <li class="navelem"><a class="el" href="classtp3_1_1_arbre_genealogique.html">ArbreGenealogique</a>      </li>
      <li class="footer">Généré le Sat Nov 30 2013 12:55:22 pour Annuaire genealogique associatif par&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
    </ul>
  </div>

</body>
</html>
